3.1 Read data
# variables
url_ac <- "https://oceanview.pfeg.noaa.gov/erddap/tabledap/cciea_AC.csv"
csv_ac <- here("data/cciea_AC.csv")
# read data
d_ac <- read_csv(url_ac, col_names = F, skip = 2)
##
## ── Column specification ────────────────────────────────────────────────────────
## cols(
## .default = col_double(),
## X1 = col_datetime(format = "")
## )
## ℹ Use `spec()` for the full column specifications.
names(d_ac) <- names(read_csv(url_ac))
##
## ── Column specification ────────────────────────────────────────────────────────
## cols(
## .default = col_character()
## )
## ℹ Use `spec()` for the full column specifications.
# show data
datatable(d_ac)
3.2 Plot statically with ggplot2
3.2.1 Simple line plot + geom_line()
# subset data
d_coast <- d_ac %>%
# select columns
select(time, total_fisheries_revenue_coastwide) %>%
# filter rows
filter(!is.na(total_fisheries_revenue_coastwide))
datatable(d_coast)
# ggplot object
p_coast <- d_coast %>%
# setup aesthetics
ggplot(aes(x = time, y = total_fisheries_revenue_coastwide)) +
# add geometry
geom_line()
# show plot
p_coast

3.2.4 Series line plot aes(color = region)
library(stringr)
library(tidyr)
d_rgn <- d_ac %>%
# select columns
select(
time,
starts_with("total_fisheries_revenue")) %>%
# exclude column
select(-total_fisheries_revenue_coastwide) %>%
# pivot longer everything but the time column
pivot_longer(-time) %>%
# mutate region by stripping other
mutate(
region = name %>%
str_replace("total_fisheries_revenue_", "") %>%
str_to_upper()) %>%
# filter for not NA
filter(!is.na(value)) %>%
# select columns
select(time, region, value)
datatable(d_rgn)
# create plot object
p_rgn <- ggplot(
d_rgn,
# aesthetics
aes(
x = time,
y = value,
group = region,
color = region)) +
# geometry
geom_line()
# show plot
p_rgn

3.2.5 Update labels + labs()
p_rgn <- p_rgn +
labs(
title = "Fisheries Revenue",
x = "Year",
y = "Millions $ (year 2015)",
color = "Region")
p_rgn

p_rgn +
facet_wrap(vars(region))

3.2.7 Bar plot + geom_col()
library(glue) ## handling strings
## Warning: package 'glue' was built under R version 3.6.2
##
## Attaching package: 'glue'
## The following object is masked from 'package:dplyr':
##
## collapse
library(lubridate)
## Warning: package 'lubridate' was built under R version 3.6.2
##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
yr_max <- year(max(d_rgn$time))
d_rgn %>%
# filter by most recent time
filter(year(time) == yr_max) %>%
# setup aesthetics
ggplot(aes(x = region, y = value, fill = region)) +
# add geometry
geom_col() +
# add labels
labs(
title = glue("Fisheries Revenue for {yr_max}"),
x = "Region",
y = "Millions $ (year 2015)",
fill = "Region")

3.2.8 Variation of series with + geom_boxplot()
d_rgn %>%
# setup aesthetics
ggplot(aes(x = region, y = value, fill = region)) +
# add geometry
geom_boxplot() +
# add labels
labs(
title = "Fisheries Revenue Variability",
x = "Region",
y = "Millions $ (year 2015)") +
# drop legend since redundant with x axis
theme(
legend.position = "none")

violine plot
p_rgn_violin <- d_rgn %>%
# setup aesthetics
ggplot(aes(x = region, y = value, fill = region)) +
# add geometry
geom_violin() +
# add labels
labs(
title = "Fisheries Revenue Variability",
x = "Region",
y = "Millions $ (year 2015)") +
# drop legend since redundant with x axis
theme(
legend.position = "none")
p_rgn_violin +
# Change theme and increase overall size
theme_classic(base_size = 20)
